home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue24 / survive / PROCS.SQL < prev    next >
Encoding:
Text File  |  1997-06-23  |  1.3 KB  |  53 lines

  1. connect "e:\sst\articles\9708\code\demo.gdb"
  2.   user "SYSDBA" password "masterkey";
  3.  
  4. set term !!;
  5.  
  6. drop procedure CreditNew!!
  7. create procedure CreditNew(iCreditNo integer, iCustNo integer)
  8.   returns (oCreditNo integer)
  9. as begin
  10.   if (iCreditNo is null) then
  11.     iCreditNo = gen_id(Gen_CreditNo, 1);
  12.   oCreditNo = :iCreditNo;
  13.  
  14.   insert into Credits (CreditNo, CustNo)
  15.     values (:iCreditNo, :iCustNo);
  16. end!!
  17.  
  18. drop procedure PaymentSave!!
  19. create procedure PaymentSave(iCustNo integer, iAmount integer)
  20.   returns (oPaymentNo integer)
  21. as begin
  22.   oPaymentNo = gen_id(Gen_PaymentNo, 1);
  23.   insert into Payments (PaymentNo, CustNo, Amount)
  24.     values (:oPaymentNo, :iCustNo, :iAmount);
  25. end!!
  26.  
  27. drop procedure PaymentCreditSave!!
  28. create procedure PaymentCreditSave(iPaymentNo integer, iCreditNo integer,
  29.   iAmount integer)
  30. as
  31.   declare variable NewBalance float;
  32. begin
  33.   select BalanceDue from Credits
  34.     where CreditNo = :iCreditNo
  35.     into :NewBalance;
  36.     
  37.   NewBalance = NewBalance - :iAmount;
  38.  
  39.   update Credits
  40.     set BalanceDue = :NewBalance
  41.     where CreditNo = :iCreditNo;
  42.  
  43.   insert into PaymentCredits (PaymentNo, CreditNo, Amount, BalanceDue)
  44.     values (:iPaymentNo, :iCreditNo, :iAmount, :NewBalance);
  45. end!!
  46.  
  47. set term ;!!
  48.  
  49.  
  50.  
  51.  
  52.  
  53.